#include <ArduinoJson.h>
/**
 *  功能 ： 构建ONENET上传JSON格式；
 *  {
  "datastreams": [
    {
      "id": "hum",
      "datapoints": [
        {
          "value": 132.45
        }
      ]
    }
  ]
}
 */
 
void setup() {
  Serial.begin(9600);
  while (!Serial) {}
  
  // Json对象对象树的内存工具 静态buffer 200 是大小 如果这个Json对象更加复杂，那么就需要根据需要去增加这个值.
  StaticJsonBuffer<200> jsonBuffer;
  JsonObject& root = jsonBuffer.createObject();       //"上面的这个Json对象",创建根，也就是顶节点 
  JsonArray& datastreams = root.createNestedArray("datastreams"); //在ROOT节点中创建一个数组对象
  JsonObject& id = datastreams.createNestedObject();        //在datastreams数组对象中创建对象
  id["id"]="hum";
  JsonArray& datapoints = id.createNestedArray("datapoints");   //在id对象中建立一个datepointes数组对象
  JsonObject& nested = datapoints.createNestedObject();       //在datapoints数组对象中建立nested对象
  nested["value"] = 132.45;   //设置键值对
  
  root.printTo(Serial);//单行打印 
  Serial.print("\n Line Json Length:");
  size_t jsonLen = root.measureLength();  //单行长度
  Serial.println(jsonLen); 
  
  Serial.print("\n");
  root.prettyPrintTo(Serial);//多行打印
  Serial.print("\n Pretty Json Length:");
  size_t jsonPLen = root.measurePrettyLength(); //多行长度
  Serial.println(jsonPLen);
}

void loop() {
  // put your main code here, to run repeatedly:

}
